
#ifndef CLUSTER_H
#define CLUSTER_H

typedef struct __core_list core_list; //处理器链表
typedef struct __task_queue_node ready_queue_node;  //就绪任务链表

typedef struct task_struct Task;
typedef struct core_domain Core;
//
struct global_domain{
    int cluster_id;//集群id

    double rate; //集群处理器速率，同一集群内处理器速率相同

    bool isFailed; //判断集群内是否有处理器发生故障

    core_list *cores; //按照所分配任务的优先级进行排列，低优先级排在队首
};

//global_domain 另一个名字叫做Cluster
typedef struct global_domain Cluster;

void initCluster(int cluster_id, double rate); //根据clusterID初始化处理器集群

Cluster *getCluster(int cluster_id);    //根据处理器集群号获得处理器

#endif // CLUSTER_H
